package com.security;

import com.entidades.Usuario;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 *
 * @author EstebanC02
 */
public class envioCorreo {

    public boolean enviarEmail(Usuario correo) {
        try {
            // Propiedades de la conexión
            Properties props = new Properties();
            InputStream is = getClass().getResourceAsStream("conf.properties"); 
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            props.load(br);
            
            // Preparamos la sesion
            Session session = Session.getDefaultInstance(props);

            //Recoger los datos
            String str_De = props.getProperty("Remitente");
            String str_PwRemitente = props.getProperty("Texto");
            String str_Para = correo.getCorreoelectronico();
            String str_Asunto = props.getProperty("Asunto");
            String str_Mensaje = "Recientemente solicitaste el cambio de tu contraseña para el ingreso a la cuenta en el High Performance Computing Laboratory de la Universidad Central de Colombia. "
                    + "\n \nQueremos informarte que tu contraseña para el ingreso es: "+ correo.getContrasena()
                    + "\n \nLe recomendamos eliminar este correo después de conocer su contraseña o hacer el cambio de la misma en la página"
                    + "\n \n\nAtentamente:"
                    + "\nEl equipo del High Performance Computing Laboratory "
                    + "\n¡Feliz día!";
            //Obtenemos los destinatarios
            String destinos[] = str_Para.split(",");

            // Construimos el mensaje
            MimeMessage message = new MimeMessage(session);

            message.setFrom(new InternetAddress(str_De));

            Address[] receptores = new Address[destinos.length];
            int j = 0;
            while (j < destinos.length) {
                receptores[j] = new InternetAddress(destinos[j]);
                j++;
            }

            //receptores.
            message.addRecipients(Message.RecipientType.TO, receptores);
            message.setSubject(str_Asunto);
            message.setText(str_Mensaje);

            // Lo enviamos.
            Transport t = session.getTransport("smtp");
            t.connect(str_De, str_PwRemitente);
            t.sendMessage(message, message.getRecipients(Message.RecipientType.TO));

            // Cierre de la conexion.
            t.close();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}
